package com.ruoyi.linkage.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 联动策略对象 linkage_strategy
 *
 * @author pengjie
 * @date 2023-12-20
 */
public class LinkageStrategy extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Excel(name = "主键")
    private String linkageStrategyId;

    /** 策略名称 */
    @Excel(name = "策略名称")
    private String linkageStrategyName;

    /** 测点设备ID */
    @Excel(name = "测点设备ID")
    private String linkageDeviceId;

    /** 测点设备名称 */
    @Excel(name = "测点设备名称")
    private String linkageDeviceName;

    /** 告警级别（上下限） */
    @Excel(name = "告警级别", readConverterExp = "上=下限")
    private String linkageOperate;

    /** 告警值 */
    @Excel(name = "告警值")
    private String linkageOperateValue;

    /** 策略状态（1启用2停用，默认启用） */
    @Excel(name = "策略状态", readConverterExp = "1=启用2停用，默认启用")
    private String linkageStatus;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createByName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createAt;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updateByName;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateAt;

    /** 版本 */
    @Excel(name = "版本")
    private String version;

    /** 状态 */
    @Excel(name = "状态")
    private Long status;

    /** 扩展字段1 */
    @Excel(name = "扩展字段1")
    private String extra1;

    /** 扩展字段2 */
    @Excel(name = "扩展字段2")
    private String extra2;

    /** 扩展字段3 */
    @Excel(name = "扩展字段3")
    private String extra3;

    /** 告警级别（值） */
    @Excel(name = "告警级别", readConverterExp = "值=")
    private String linkageAlarmValue;

    /** 地址信息ID */
    @Excel(name = "地址信息ID")
    private String linkageAddressId;

    /** 地址信息 */
    @Excel(name = "地址信息")
    private String linkageAddress;

    /** 是否AI联动配置，默认0否，1是 */
    @Excel(name = "是否AI联动配置，默认0否，1是")
    private String isAiLinkage;

    /** AI联动配置联动配置编号 */
    @Excel(name = "AI联动配置联动配置编号")
    private String linkageStrategyCode;

    /** AI联动配置联动告警类型编号 */
    @Excel(name = "AI联动配置联动告警类型编号")
    private String alarmTypeCode;

    /** AI联动配置联动告警类型 */
    @Excel(name = "AI联动配置联动告警类型")
    private String alarmType;

    /** AI联动配置是否启动应急 */
    @Excel(name = "AI联动配置是否启动应急")
    private String isActivate;

    /** 灾害类型编号 */
    @Excel(name = "灾害类型编号")
    private String disasterTypeCode;

    /** 灾害类型 */
    @Excel(name = "灾害类型")
    private String disasterType;

    @TableField(exist = false)
    private List<LinkageAction> list;

    public List<LinkageAction> getList() {
        return list;
    }

    public void setList(List<LinkageAction> list) {
        this.list = list;
    }

    public LinkageStrategy() {
    }

    public void setLinkageStrategyId(String linkageStrategyId)
    {
        this.linkageStrategyId = linkageStrategyId;
    }

    public String getLinkageStrategyId()
    {
        return linkageStrategyId;
    }
    public void setLinkageStrategyName(String linkageStrategyName)
    {
        this.linkageStrategyName = linkageStrategyName;
    }

    public String getLinkageStrategyName()
    {
        return linkageStrategyName;
    }
    public void setLinkageDeviceId(String linkageDeviceId)
    {
        this.linkageDeviceId = linkageDeviceId;
    }

    public String getLinkageDeviceId()
    {
        return linkageDeviceId;
    }
    public void setLinkageDeviceName(String linkageDeviceName)
    {
        this.linkageDeviceName = linkageDeviceName;
    }

    public String getLinkageDeviceName()
    {
        return linkageDeviceName;
    }
    public void setLinkageOperate(String linkageOperate)
    {
        this.linkageOperate = linkageOperate;
    }

    public String getLinkageOperate()
    {
        return linkageOperate;
    }
    public void setLinkageOperateValue(String linkageOperateValue)
    {
        this.linkageOperateValue = linkageOperateValue;
    }

    public String getLinkageOperateValue()
    {
        return linkageOperateValue;
    }
    public void setLinkageStatus(String linkageStatus)
    {
        this.linkageStatus = linkageStatus;
    }

    public String getLinkageStatus()
    {
        return linkageStatus;
    }
    public void setCreateByName(String createByName)
    {
        this.createByName = createByName;
    }

    public String getCreateByName()
    {
        return createByName;
    }
    public void setCreateAt(Date createAt)
    {
        this.createAt = createAt;
    }

    public Date getCreateAt()
    {
        return createAt;
    }
    public void setUpdateByName(String updateByName)
    {
        this.updateByName = updateByName;
    }

    public String getUpdateByName()
    {
        return updateByName;
    }
    public void setUpdateAt(Date updateAt)
    {
        this.updateAt = updateAt;
    }

    public Date getUpdateAt()
    {
        return updateAt;
    }
    public void setVersion(String version)
    {
        this.version = version;
    }

    public String getVersion()
    {
        return version;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setExtra1(String extra1)
    {
        this.extra1 = extra1;
    }

    public String getExtra1()
    {
        return extra1;
    }
    public void setExtra2(String extra2)
    {
        this.extra2 = extra2;
    }

    public String getExtra2()
    {
        return extra2;
    }
    public void setExtra3(String extra3)
    {
        this.extra3 = extra3;
    }

    public String getExtra3()
    {
        return extra3;
    }
    public void setLinkageAlarmValue(String linkageAlarmValue)
    {
        this.linkageAlarmValue = linkageAlarmValue;
    }

    public String getLinkageAlarmValue()
    {
        return linkageAlarmValue;
    }
    public void setLinkageAddressId(String linkageAddressId)
    {
        this.linkageAddressId = linkageAddressId;
    }

    public String getLinkageAddressId()
    {
        return linkageAddressId;
    }
    public void setLinkageAddress(String linkageAddress)
    {
        this.linkageAddress = linkageAddress;
    }

    public String getLinkageAddress()
    {
        return linkageAddress;
    }
    public void setIsAiLinkage(String isAiLinkage)
    {
        this.isAiLinkage = isAiLinkage;
    }

    public String getIsAiLinkage()
    {
        return isAiLinkage;
    }
    public void setLinkageStrategyCode(String linkageStrategyCode)
    {
        this.linkageStrategyCode = linkageStrategyCode;
    }

    public String getLinkageStrategyCode()
    {
        return linkageStrategyCode;
    }
    public void setAlarmTypeCode(String alarmTypeCode)
    {
        this.alarmTypeCode = alarmTypeCode;
    }

    public String getAlarmTypeCode()
    {
        return alarmTypeCode;
    }
    public void setAlarmType(String alarmType)
    {
        this.alarmType = alarmType;
    }

    public String getAlarmType()
    {
        return alarmType;
    }
    public void setIsActivate(String isActivate)
    {
        this.isActivate = isActivate;
    }

    public String getIsActivate()
    {
        return isActivate;
    }
    public void setDisasterTypeCode(String disasterTypeCode)
    {
        this.disasterTypeCode = disasterTypeCode;
    }

    public String getDisasterTypeCode()
    {
        return disasterTypeCode;
    }
    public void setDisasterType(String disasterType)
    {
        this.disasterType = disasterType;
    }

    public String getDisasterType()
    {
        return disasterType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("linkageStrategyId", getLinkageStrategyId())
            .append("linkageStrategyName", getLinkageStrategyName())
            .append("linkageDeviceId", getLinkageDeviceId())
            .append("linkageDeviceName", getLinkageDeviceName())
            .append("linkageOperate", getLinkageOperate())
            .append("linkageOperateValue", getLinkageOperateValue())
            .append("linkageStatus", getLinkageStatus())
            .append("createBy", getCreateBy())
            .append("createByName", getCreateByName())
            .append("createAt", getCreateAt())
            .append("updateBy", getUpdateBy())
            .append("updateByName", getUpdateByName())
            .append("updateAt", getUpdateAt())
            .append("remark", getRemark())
            .append("version", getVersion())
            .append("status", getStatus())
            .append("extra1", getExtra1())
            .append("extra2", getExtra2())
            .append("extra3", getExtra3())
            .append("linkageAlarmValue", getLinkageAlarmValue())
            .append("linkageAddressId", getLinkageAddressId())
            .append("linkageAddress", getLinkageAddress())
            .append("isAiLinkage", getIsAiLinkage())
            .append("linkageStrategyCode", getLinkageStrategyCode())
            .append("alarmTypeCode", getAlarmTypeCode())
            .append("alarmType", getAlarmType())
            .append("isActivate", getIsActivate())
            .append("disasterTypeCode", getDisasterTypeCode())
            .append("disasterType", getDisasterType())
            .toString();
    }
}
